/*
 *  $Id: FakePhrase.cs 1178 2010-11-09 18:14:43Z thenn.erannor $
 *  This file is a part of Ragima CCG.
 *  (C) 2008-2010 Ragima development group.
 *
 *  Licensed under the terms of the GNU GPL License version 2.
 *
 */

using Ragima.Languages.PhraseParts;

namespace Ragima.Languages {
    /// <summary>
    /// Поддельная фраза, ничего не запрашивающая в ресурсах, а всегда выдающая один и тот же текст для любого языка.
    /// Идентификатором служит сам же текст.
    /// </summary>
    public class FakePhrase : Phrase {
        private LocalizedPhrase _text;

        public FakePhrase(string text) : base(text) {
            _text = new FakeLocalizedPhrase(text);
        }

        /// <summary>
        /// Получает всегда один и тот же ресурс вместо его запроса по языку.
        /// </summary>
        public override LocalizedPhrase GetResource(Language lang) {
            return _text;
        }

        /// <summary>
        /// Поддельная локализованная фраза, включающая в себя одну текстовую часть фразы с постоянным текстом.
        /// </summary>
        private class FakeLocalizedPhrase : LocalizedPhrase {
            public FakeLocalizedPhrase(string text) : base(new PhrasePart[] { new TextPhrasePart(text) }) {
            }
        }
    }
}
